SpringCloud-Eureka服务发现(3)

x33g5p2x  于2021-12-18 转载在 其他  
字(1.9k)|赞(0)|评价(0)|浏览(287)

服务发现就是 让消费者能够访问。就是对于注册eureka里面的为服务 ,可以通过服务发现来获得该服务信息

案列:
首先在 提供者的8083里的controller添加 服务发现接口

注意 private DiscoveryClient client; 不要倒错包

package com.xxx.controller;

import java.util.List;

import org.bouncycastle.jcajce.provider.asymmetric.dsa.DSASigner.detDSA;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.cloud.client.ServiceInstance;
import org.springframework.cloud.client.discovery.DiscoveryClient;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;

import com.xxx.service.UserService;
import com.xxx.user.User;

@Controller
public class UserController {

	@Autowired
	private UserService  userService;
	
	@Autowired
	private DiscoveryClient client;     
	

	
	@RequestMapping(value = "/dept/discovery", method = RequestMethod.GET)
	@ResponseBody
	
	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;
	}
}

2)在启动类上 添加上
@EnableDiscoveryClient //服务发现

现在这个8083工程就可以自己调用自己的服务了
首先 启动 7001的注册和8083
访问
8083 加上dept/discovery 就可以访问到 了

回到 控制台 也打印出了 信息

下 一步就是 消费者 (8084)调用 提供者(8083) 的 服务了

就是把刚的代码 放到 8084 消费者里面

@RequestMapping(value = "/tt/dept/discovery")
	@ResponseBody
		public Object discovery()
		{
			return restTemplate.getForObject(REST_URL_PREFIX + "/dept/discovery", Object.class);
		}

下一步 就是把上个 3个项目 都启动了 7001(注册)8083(提供)8084(消费者)这三个项目启动
这样消费者 也能看的到 这个服务了

相关文章