(二)注册服务提供者
在完成了服務注冊中心的搭建之后,接下來我們嘗試將一個既有的 Spring Boot 應用加 入 Emeka 的服務治理體系中去。可以使用上一章中實現的快速入門工程來進行改造, 將其作為一個微服務應用向服務 注冊中心發布自己。 首先, 修改 pom.xml, 增加 Spring Cloud Eureka 模塊的依賴, 具體代 碼如下所示:
<modelVersion>4.0.0</modelVersion><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.1.4.RELEASE</version><relativePath/> <!-- lookup parent from repository --></parent><groupId>com.example</groupId><artifactId>demo</artifactId><version>0.0.1-SNAPSHOT</version><name>demo</name><description>Demo project for Spring Boot</description><properties><java.version>1.8</java.version></properties><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-aop</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-cache</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-validation</artifactId></dependency><dependency><groupId>org.springframework.retry</groupId><artifactId>spring-retry</artifactId></dependency><dependency><groupId>org.springframework.session</groupId><artifactId>spring-session-core</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-devtools</artifactId><scope>runtime</scope></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-configuration-processor</artifactId><optional>true</optional></dependency><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><optional>true</optional></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency></dependencies><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build>接著, 改造/hello 請求處理接口, 通過注入 DiscoveryClient對象, 在日志中打印出服務的相關內容。
@RestController public class HelloController { private final Logger logger = Logger.getLogger(getClass());@Autowired private DiscoveryClient client;@RequestMapping(value = "/hello", method= RequestMethod.GET) public String index() { Service Instance instance = client.getLocalServiceinstance(); logger.info("/hello, host:" + instance.getHost() + ", service id:" +instance.getServiceid());return "Hello World";} }?
然后, 在主類中通過加上 @EnableDiscoveryClient 注解, 激活 Eureka 中的 DiscoveryClient 實現(自動化配置, 創建 DiscoveryClient 接口針對 Eureka 客戶 端的 EurekaDiscoveryClient 實例), 才能實現上述 Controller 中對服務信息的輸出。
@EnableDiscoveryClient @SpringBootApplication public class HelloApplication { public static void main(String[] args) {SpringApplication.run(HelloApplication.class, args);} }最后 ,我們需要在 application.yml配置文件中,通 過 spring. application.name屬性來為 服 務命名,比如命名 為 hello-service。 再通過 eureka.client. serviceUrl.defaultZone屬性來指定服務注冊中心的地址, 這里 我們指定為之前構建的服務注冊中心地址, 完整配置如下所示:
spring.application.name=hello-service eureka.client.serviceUrl.defaultZone=http://localhost:8761/eureka/下面我們分別啟 動服務注冊中心以及這里改造后的hello-service 服務。 在hello-service服務控制臺中,Tomcat啟動之后,com.netflix.中scovery.DiscoveryClient 對象打印了該服務的注冊信息 ,表示服務注冊成功。
而此時在服務注冊中心的控制臺中,可以看到類似下面的輸出,名為hello-service 的服務被注冊成功了。
?
?
此版本比較舊只做學習參考
?
總結
以上是生活随笔為你收集整理的(二)注册服务提供者的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java通过url读取网络图片
- 下一篇: DM368开发 --IPNC 设置过程