前現在ログオンしているユーザーを取得し、我々は、ユーザーが現在ログオンして取得する方法について説明します
私たちは、この1件の登録センターの観点から離陸した、実際には登録センターはマイクロサービスのコアコンポーネントです
この記事の出所:
一般的なレジストリ:
- ユーレカはバージョン1.x、2.xバージョンが放棄されている維持します。レジストリの原則に属しCA
- レジストリのZooKeeperの高い一貫性は、レジストリは、より良いサポートダボです
- 領事は、大規模なシステムのために、そのユーレカの昇華を理解することができます
- アリナコス新しいオープンソースのレジストリと構成センターの統合サービスを提供しています。
選択する方法に個々の要望に依存して実際には、上記のレジストリそれぞれが、自分の長所を持っています。
レジストリ構成のためここでは説明して基づいていますナコス
統合を参照してください。
統合されたレジストリの後、サービスへの公式の間の通話次のように:
@SpringBootApplication
@EnableDiscoveryClient
public class NacosConsumerApplication {
@LoadBalanced
@Bean
public RestTemplate restTemplate() {
return new RestTemplate();
}
public static void main(String[] args) {
SpringApplication.run(NacosConsumerApplication.class, args);
}
@RestController
public class TestController {
private final RestTemplate restTemplate;
@Autowired
public TestController(RestTemplate restTemplate) {this.restTemplate = restTemplate;}
@RequestMapping(value = "/echo/{str}", method = RequestMethod.GET)
public String echo(@PathVariable String str) {
return restTemplate.getForObject("http://service-provider/echo/" + str, String.class);
}
}
}
しかし、私は道に慣れopenfeignのために、それは少しは台無しですが、外部APIを呼び出す前に、書込み接続アドレスと実際に道にいたそれぞれが同じで、何もより今よりも内部コールになっていません。その後openfeign下での使用については、以下:
まずPOMファイルを高めるために導入:
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-hystrix</artifactId>
</dependency>
スタートクラスは、注釈を追加します。
@EnableFeignClients
サービスへの新しいコール:
@FeignClient(name = "user")
public interface UserService {
/**
* 通过用户名,或者email获取用户名
* @param email
* @return
*/
@GetMapping("/user/email/{email}")
ComResponse<User> getUserByEmail(@PathVariable("email") String email);
/**
* 通过用户名,或者email获取用户名
* @param telephone
* @return
*/
@GetMapping("/user/tel/{telephone}")
ComResponse<User> getUserByTel(@PathVariable("telephone") String telephone);
/**
* 根据用户查询角色
* @param userId
* @return
*/
@GetMapping("/role/list/{userId}")
ComResponse<List<Role>> listByUser(@PathVariable("userId") Long userId);
/**
* 通过用户查询权限
* @param roleId
* @return
*/
@GetMapping("/permission/list/{roleId}")
ComResponse<List<Permission>> listByRole(@PathVariable("roleId") Long roleId);
}
これは、それはまだ非常に身近な感じではありません。これは、直接サービスコールに導入することができます。