文章開頭嘮叨兩句。
2019年了,而自己參加工作也兩年有余了,用一個詞來概括這兩年多的生活,就是:“碌碌無為”。
也不能說一點收獲都沒有,但是很少。2019來了,我立志要打破現狀,改變自己,突破自我。現在明白了只有不斷的學習才能不被淘汰,只有不斷的學習才能拿到更高的工資。
言歸正傳,在今早發現張隊在元旦前的博客“年末展望:Oracle 對 JDK收費和.NET Core 給我們的機遇”,說明了以后.net core會越來越好,而我本人在2017年的時候開始接觸過.net core的時候,就沒有放棄過對.net core的學習,現在覺得微服務是個不錯的方向,而自己也在學習這塊的東西,所以寫個博客記錄一下自己的學習的筆記。
我采用的是java的Spring cloud + .net core。
- 先打開idea創建一個Spring boot項目,在pom文件中添加如下maven依賴:
<dependencyManagement> <dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-dependencies</artifactId> <version>Dalston.SR3</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement> <dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-config</artifactId> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-eureka-server</artifactId> </dependency> </dependencies>
下載eureka需要的jar包。
- 新建一個《application.properties》配置文件,添加如下幾行配置:
server.port=8888 #客戶端默認情況下會將自己注冊到一個8761的端口,我們修改端口為8888 eureka.client.register-with-eureka=false #默認會把自己當作一個客戶端注冊到eureka服務,把他設置為false。 eureka.client.fetch-registry=false #默認去抓取注冊信息,自己本身是一個eureka服務器,沒必要去抓取,應該是客戶端去抓取,所以把這個配置設置為false。
- 添加一個啟動類。
import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.builder.SpringApplicationBuilder; import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer; @SpringBootApplication @EnableEurekaServer public class ServerApp { public static void main(String[] args){ new SpringApplicationBuilder(ServerApp.class).web(true).run(args); } }
啟動這個啟動類,然后瀏覽器里輸入:http://localhost:8888(8888是我spring boot的端口),然后看到如下頁面,這個時候說明Spring boot eureka服務啟動成功。
- 打開vs,創建一個.net core web api項目 ,使用nuget添加Pivotal.Discovery.ClientCore庫。
- Startup.cs 中添加
public void ConfigureServices(IServiceCollection services) { // services.AddDiscoveryClient(Configuration); services.AddDiscoveryClient(Configuration); services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1); }
public void Configure(IApplicationBuilder app, IHostingEnvironment env,ILoggerFactory loggerFactory) { loggerFactory.AddConsole(Configuration.GetSection("Logging")); loggerFactory.AddDebug(); if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); } else { app.UseHsts(); } app.UseDiscoveryClient(); app.UseHttpsRedirection(); app.UseMvc(); }
需要using Pivotal.Discovery.Client;
- 修改端口,
- 打開launchSettings.json
- 修改端口為5000
"Demo": { "commandName": "Project", "launchBrowser": true, "launchUrl": "api/values", "applicationUrl": "http://localhost:5000", "environmentVariables": { "ASPNETCORE_ENVIRONMENT": "Development" }
- 打開appsettings.json 添加eureka服務配置
{ "Logging": { "LogLevel": { "Default": "Warning" } }, "spring":{ "application":{ "name":"serviceone" } }, "eureka":{ "client":{ "serviceUrl":"http://localhost:8888/eureka", "shouldFetchRegistry":false, "shouldRegisterWithEureka":true }, "instance":{ "port":5000,
"hostName": "localhost" } } }
- 打開appsettings.json 添加eureka服務配置
- 到此為止我們算是配置完成了一個簡單的注冊服務的小demo,我們先啟動eureka服務,再啟動.net core服務。這個時候在eureka服務的頁面中發現名字為serviceone的客戶端成功注冊到了eureka服務中。
參考資料:
備注:最近先更新Spring Cloud知識,之后會使用完整的Spring Cloud + .net core完成一個完整的項目。
下周更新:搭建eureka群集。