springcloud 服務注冊與發現
服務注冊
1:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.atguigu.springcloud</groupId>
<artifactId>microservicecloud</artifactId>
<version>0.0.1-SNAPSHOT</version>
</parent>
<artifactId>microservicecloud-provider-dept-8001</artifactId>
<dependencies>
<!-- 引入自己定義的api通用包,可以使用Dept部門Entity -->
<dependency>
<groupId>com.atguigu.springcloud</groupId>
<artifactId>microservicecloud-api</artifactId>
<version>${project.version}</version>
</dependency>
<!-- actuator監控信息完善 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<!-- 將微服務provider側注冊進eureka -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-eureka</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-config</artifactId>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
</dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-core</artifactId>
</dependency>
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jetty</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
</dependency>
<!-- 修改后立即生效,熱部署 -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>springloaded</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
</dependency>
</dependencies>
</project>
2:
server:
port: 8001
mybatis:
config-location: classpath:mybatis/mybatis.cfg.xml # mybatis配置文件所在路徑
type-aliases-package: com.atguigu.springcloud.entities # 所有Entity別名類所在包
mapper-locations:
- classpath:mybatis/mapper/**/*.xml # mapper映射文件
spring:
application:
name: microservicecloud-dept
datasource:
type: com.alibaba.druid.pool.DruidDataSource # 當前數據源操作類型
driver-class-name: org.gjt.mm.mysql.Driver # mysql驅動包
url: jdbc:mysql://localhost:3306/cloudDB01 # 數據庫名稱
username: root
password: 123456
dbcp2:
min-idle: 5 # 數據庫連接池的最小維持連接數
initial-size: 5 # 初始化連接數
max-total: 5 # 最大連接數
max-wait-millis: 200 # 等待連接獲取的最大超時時間
eureka:
client: #客戶端注冊進eureka服務列表內
service-url:
#defaultZone: http://localhost:7001/eureka
defaultZone: http://eureka7001.com:7001/eureka/,http://eureka7002.com:7002/eureka/,http://eureka7003.com:7003/eureka/
instance:
instance-id: microservicecloud-dept8001
prefer-ip-address: true #訪問路徑可以顯示IP地址
info:
app.name: atguigu-microservicecloud
company.name: www.atguigu.com
build.artifactId: $project.artifactId$
build.version: $project.version$
3:
服務發現
1: @EnableDiscoveryClient //服務發現
2:
package com.atguigu.springcloud.controller;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.cloud.client.ServiceInstance;
import org.springframework.cloud.client.discovery.DiscoveryClient;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
import com.atguigu.springcloud.entities.Dept;
import com.atguigu.springcloud.service.DeptService;
@RestController
public class DeptController
{
@Autowired
private DeptService service;
@Autowired
private DiscoveryClient client;
@RequestMapping(value = "/dept/add", method = RequestMethod.POST)
public boolean add(@RequestBody Dept dept)
{
return service.add(dept);
}
@RequestMapping(value = "/dept/get/{id}", method = RequestMethod.GET)
public Dept get(@PathVariable("id") Long id)
{
return service.get(id);
}
@RequestMapping(value = "/dept/list", method = RequestMethod.GET)
public List<Dept> list()
{
return service.list();
}
@RequestMapping(value = "/dept/discovery", method = RequestMethod.GET)
public Object discovery() {
List<String> list = client.getServices();
System.out.println("**********" + list);
List<ServiceInstance> srvList = client.getInstances("MICROSERVICECLOUD-DEPT");
for (ServiceInstance element : srvList) {
System.out.println(element.getServiceId() + "\t" + element.getHost() + "\t" + element.getPort() + "\t"
+ element.getUri());
}
return this.client;
}
}
3:
智能推薦
springcloud(三)--服務注冊與發現Eureka
如題,本篇我們來引入SpringCloud中服務注冊與發現組件--Eureka,然后將SIM服務提供者向Eureka服務器進行注冊。 一、Eureka 是什么 Eureka是Netflix開發的服務發現框架,本身是一個基于REST的服務,主要用于定位運行在AWS域中的中間層服務,以達到負載均衡和中間層服務故障轉移的目的。SpringCloud將它集成在其子項目spring-c...
SpringCloud服務的注冊與發現(一)
一、什么是服務注冊與發現 Spring Cloud Eureka 模塊提供的功能是被動式的服務發現。 服務注冊:每個用戶去聊天室服務器上注冊。 服務發現:這樣他的好友們就能看到你,你同時也將獲取好友的上線列表. 微服務中,服務就相當于聊天室的用戶,而服務注冊中心就像聊天室服務器一樣。 目前服務發現的解決方案有Eureka,Consul,Zookeeper等等。SpringCloud默認使用eure...
springcloud之Eurka==服務注冊與發現==
1.簡介 Eureka在Spring Cloud全家桶中擔任著服務的注冊與發現的落地實現,是springcloud全家桶中的一員。服務治理是微服務架構中最為核心和基礎的模塊,它主要用來實現各個微服務實例的自動化注冊和發現。Spring Cloud Eureka是Spring Cloud Netflix微服務套件中的一部分,它基于Netflix Eureka做了二次封裝。主要負責完成微服務架構中的服...
SpringCloud服務注冊、發現與調用
本文主要是springcloud入門提現分布式服務架構 一、這里主要有三個角色:服務注冊中心、服務提供者、服務消費者 二、主要的功能為兩個模塊分布在不同的機器上服務消費者進行調用服務提供者,這里不涉及業務邏輯和crud操作 三、博主親測可跑,如有問題可以聯系博主QQ372445135,話不啰嗦上代碼 四、工程創建:  ...
springcloud.3.服務注冊與發現
還是在springcloud總目錄下創建一個springboot工程,用于實現服務注冊發現功能 首先創建pom文件,內容如下: 幾個重點內容: 引用統一依賴: 依賴eureka,這個依賴是這個模塊的核心,不依賴eureka無法實現服務注冊與發現 這個配置的作用是在項目打成jar包,并且以jar包的形式啟動時,使jar包能夠找到啟動類,沒有此項配置,以jar包形式啟動的時候會報錯 接下來是sprin...
猜你喜歡
SpringCloud (一)、服務注冊與發現
微服務架構 “微服務架構” 在之前幾年就很火爆了,以至于現在關于微服務的文章很多,資料也是海量,社區同樣也是很活躍。 微服務架構 的兩大主流 應該就是SpringCloud 與 dubbo 了。 說了那么多,微服務是什么呢? 簡單的說,微服務架構就是將一個完整的應用垂直拆分成多個不同的服務,每個服務都是一個個體,可以獨立部署、獨立維護、獨立擴展、服務與服務之間 通過諸如RE...
springcloud服務注冊與發現--簡單示例
首先新建springboot項目,設置為eureka服務器,也就是注冊中心 springboot有集成eureka,可直接引入jar包,設置相應注解,就可以使項目變為eureka服務器 真正的EurekaServer是Netflix公司的開源項目,也是可以單獨下載使用的。 pom.xml中加入: 寫入配置: 在啟動類上加上注解@EnableEurekaServer: 到此注冊中心配置完畢 啟動Sp...
SpringCloud(一) eureka服務注冊與發現
一、 Eureka介紹 Eureka是一個基于REST(Representational State Transfer)的服務,主要用于AWS cloud, 提供服務定位(locating services)、負載均衡(load balancing)、故障轉移(failover of middle-tier servers)。我們把它叫做Eureka Server. Eureka也提供了基于Jav...
SpringCloud學習之服務注冊與發現
什么是微服務 ”微服務”一詞源于Martin Fowler的名為Microservices的博文,可以在他的官方博客上找到: https://martinfowler.com/articles/microservices.html 簡單地說,微服務是系統架構上的一中設計風格,它的主旨是將一個原本獨立的系統拆分成多個小型的服務,...
SpringCloud(二):服務注冊與發現——Eureka
服務注冊與發現——Eureka 是什么? Eureka架構圖 Eureka兩個組件 Server Client 構建Eureka Server服務 構建Eureka Client 在provider中模擬發現服務 actutor微服務信息完善 Eureka的自我保護 Eureka集群配置 是什么? 是Netflix的一個子模塊,也是核心模塊之一,基于REST的服務 用于云端...