安装依赖
npm install nacos --save
config/index.js
var base = {}
var dev = {
server: {
list: '10.0.0.192:8848',
namespace: '5fa2f06b-1959-4b32-9060-81e49e54dfdd',
group: 'dev'
},
service: {
name: 'test-service',
ip: '10.0.0.193',
port: 3000
}
}
var pro = {}
module.exports = {
config: process.env.NODE_ENV == 'dev' ?
Object.assign(dev, base) : Object.assign(pro, base)
}
service/index.js
const NacosNamingClient = require('nacos').NacosNamingClient;
const {config}=require('../config')
const logger = console;
const serviceName = config.service.name;
function nacos() {
const client = new NacosNamingClient({
logger,
serverList: config.server.list, // replace to real nacos serverList
namespace: config.server.namespace,
});
return client
}
async function register() {
const client = nacos()
await client.ready()
client.registerInstance(serviceName, {
ip: config.service.ip,
port: config.service.port,
}, config.server.group);
}
async function discovery(){
const client=nacos()
await client.ready()
const instances=await client.getAllInstances(serviceName,config.server.group)
const [instance]=instances.filter(item=>{
return item.healthy
})
const {ip,port}=instance
console.log(ip,port)
}
module.exports = { register,discovery}
koa2微服务代码
const router = require('koa-router')()
router.prefix('/users')
router.get('/', function (ctx, next) {
ctx.body = 'this is a users response!'
})
router.get('/bar', function (ctx, next) {
ctx.body = 'this is a users/bar response'
})
module.exports = router
微服务注册nacos
app.js
const nacos= require('./services')
nacos.register()
通过Spring Cloud Gateway调用koa2微服务