当前位置: 首页 > news >正文

dw做网站链接seo少女

dw做网站链接,seo少女,制作小企业网站,网站源码.net服务发现 Registry 接口分为两个,Registrar 为实例注册和反注册,Discovery 为服务实例列表获取 创建一个 Discoverer 服务间的通信使用的grpc,放到data层,实现的是从uses服务调用orders服务 app/users/internal/data.go 加入 New…
服务发现

Registry 接口分为两个,Registrar 为实例注册和反注册,Discovery 为服务实例列表获取

创建一个 Discoverer

        服务间的通信使用的grpc,放到data层,实现的是从uses服务调用orders服务

app/users/internal/data.go 加入 NewDiscovery和 NewOrderServiceClient,需要把新加的2个方法加入到 ProviderSet

需要把新生成的orderClient注入到Data里面 orderClient orders.OrderClient

package dataimport ("context""github.com/go-kratos/kratos/contrib/registry/nacos/v2""github.com/go-kratos/kratos/v2/log""github.com/go-kratos/kratos/v2/middleware/recovery""github.com/go-kratos/kratos/v2/registry""github.com/go-kratos/kratos/v2/transport/grpc""github.com/google/wire""github.com/nacos-group/nacos-sdk-go/clients""github.com/nacos-group/nacos-sdk-go/common/constant""github.com/nacos-group/nacos-sdk-go/vo""gorm.io/driver/mysql""gorm.io/gorm""time""xgs_kratos/gen/config/users""xgs_kratos/gen/orders"
)// ProviderSet is data providers.
var ProviderSet = wire.NewSet(NewData, NewDiscovery, CreateRegister, NewOrderServiceClient, NewUserRepo)// Data .
type Data struct {// TODO wrapped database clientdb          *gorm.DBlog         *log.HelperorderClient orders.OrderClient
}// NewData .func NewData(c *conf.Data, logger log.Logger, client orders.OrderClient) (*Data, func(), error) {cleanup := func() {log.NewHelper(logger).Info("closing the data resources")}db, err := gorm.Open(mysql.Open(c.Database.Source), &gorm.Config{})if err != nil {log.Fatalf("failed to connect database: %v", err)panic(err)}return &Data{db:          db,log:         log.NewHelper(logger),orderClient: client,}, cleanup, nil
}// NewDiscovery 服务发现
func NewDiscovery(conf *conf.Data) registry.Discovery {sc := []constant.ServerConfig{{IpAddr: conf.Nacos.Addr,Port:   conf.Nacos.Port,},}cc := constant.ClientConfig{NamespaceId: conf.Nacos.NamespaceId,TimeoutMs:   5000,}client, err := clients.NewNamingClient(vo.NacosClientParam{ClientConfig:  &cc,ServerConfigs: sc,},)if err != nil {panic(err)}r := nacos.New(client)return r
}// NewOrderServiceClient orders 服务客户端
func NewOrderServiceClient(r registry.Discovery) orders.OrderClient {conn, err := grpc.DialInsecure(context.Background(),grpc.WithEndpoint("discovery:///orders-xgs.grpc"),grpc.WithDiscovery(r),grpc.WithTimeout(time.Second*2),grpc.WithMiddleware(recovery.Recovery(),),)if err != nil {panic(err)}c := orders.NewOrderClient(conn)return c
}

在users下执行 wire

以ListUser方法为例子进行调用

app/users/internal/user.go

package dataimport ("context""fmt""github.com/go-kratos/kratos/v2/log""xgs_kratos/app/users/internal/biz""xgs_kratos/app/users/internal/data/dal""xgs_kratos/gen/orders""xgs_kratos/gen/users"
)//data 层处理数据的存储和读取type userRepo struct {data *Datalog  *log.Helper
}// NewUserRepo . r registry.Discovery,
func NewUserRepo(data *Data, logger log.Logger) biz.UserRepo {return &userRepo{data: data,log:  log.NewHelper(logger),}
}// CreateUser 创建用户
func (r *userRepo) CreateUser(ctx context.Context, req *users.CreateUserRequest) (*users.CreateUserReply, error) {user := dal.UserMo{Age:   req.Age,Name:  req.Name,Email: req.Email,}result := r.data.db.Create(&user)if result.Error != nil {return nil, result.Error}return &users.CreateUserReply{Id: user.Id,}, nil
}func (r *userRepo) ListUser(ctx context.Context, req *users.ListUserRequest) ([]*users.UserData, error) {//获取order服务的clientclient := r.data.orderClientorder, err := client.CreateOrder(ctx, &orders.CreateOrderRequest{OrderNo: 1,})if err != nil {return nil, err}fmt.Println(order)var results []dal.UserMores := r.data.db.Find(&results)if res.Error != nil {return nil, res.Error}var userDatas []*users.UserDatafor _, result := range results {userDatas = append(userDatas, &users.UserData{Id:    result.Id,Name:  result.Name,Age:   result.Age,Email: result.Email,})}return userDatas, nil
}

从新生成一下代码  buf  generate

如果服务是分开部署的,需要拿到对方的存根 proto 执行 kratos proto client xxx.proto生成client

分别启动users和orders 服务是都是注册成功的,由于注册的是http和grpc所有后面拼接的有http和grpc,调用的时候需要拼接上

postman请求看效果

看日志输出 users

再看orders服务的日志输出

 项目的代码  码云 https://gitee.com/gebilaoxie/xgs_kratos.git


文章转载自:
http://cameo.bdypl.cn
http://achilles.bdypl.cn
http://arcograph.bdypl.cn
http://amadavat.bdypl.cn
http://aroynt.bdypl.cn
http://aconitum.bdypl.cn
http://barroom.bdypl.cn
http://antitechnology.bdypl.cn
http://biathlon.bdypl.cn
http://chongjin.bdypl.cn
http://amoebiasis.bdypl.cn
http://chateaux.bdypl.cn
http://centralism.bdypl.cn
http://cateress.bdypl.cn
http://brewage.bdypl.cn
http://avatar.bdypl.cn
http://anagram.bdypl.cn
http://aplasia.bdypl.cn
http://cacodyl.bdypl.cn
http://bubu.bdypl.cn
http://absurdly.bdypl.cn
http://cardiosclerosis.bdypl.cn
http://antherozoid.bdypl.cn
http://accrete.bdypl.cn
http://angiocarpous.bdypl.cn
http://bequeath.bdypl.cn
http://aerodonetics.bdypl.cn
http://appologize.bdypl.cn
http://applicant.bdypl.cn
http://anuretic.bdypl.cn
http://chiba.bdypl.cn
http://adverb.bdypl.cn
http://biopack.bdypl.cn
http://backlighting.bdypl.cn
http://atheistical.bdypl.cn
http://biconical.bdypl.cn
http://booboisie.bdypl.cn
http://caress.bdypl.cn
http://andvari.bdypl.cn
http://chemoimmunotherapy.bdypl.cn
http://alterne.bdypl.cn
http://canarian.bdypl.cn
http://athanasia.bdypl.cn
http://chrome.bdypl.cn
http://algometric.bdypl.cn
http://causationism.bdypl.cn
http://bibliomaniac.bdypl.cn
http://bifolium.bdypl.cn
http://barbicel.bdypl.cn
http://blighted.bdypl.cn
http://antihuman.bdypl.cn
http://cardan.bdypl.cn
http://authorize.bdypl.cn
http://bereft.bdypl.cn
http://associational.bdypl.cn
http://barnstorm.bdypl.cn
http://catercornered.bdypl.cn
http://charmless.bdypl.cn
http://archetypal.bdypl.cn
http://christocentric.bdypl.cn
http://childless.bdypl.cn
http://catoptrics.bdypl.cn
http://amoebean.bdypl.cn
http://agrimotor.bdypl.cn
http://caressive.bdypl.cn
http://agonal.bdypl.cn
http://additament.bdypl.cn
http://ceiba.bdypl.cn
http://camcorder.bdypl.cn
http://antinomianism.bdypl.cn
http://blotting.bdypl.cn
http://birefringence.bdypl.cn
http://adding.bdypl.cn
http://adaptability.bdypl.cn
http://bothy.bdypl.cn
http://bemud.bdypl.cn
http://backpat.bdypl.cn
http://argo.bdypl.cn
http://afterthought.bdypl.cn
http://checked.bdypl.cn
http://brrr.bdypl.cn
http://canid.bdypl.cn
http://bergamot.bdypl.cn
http://beetroot.bdypl.cn
http://anastomosis.bdypl.cn
http://bathinette.bdypl.cn
http://afire.bdypl.cn
http://bust.bdypl.cn
http://carpophore.bdypl.cn
http://butterbur.bdypl.cn
http://bey.bdypl.cn
http://aspectual.bdypl.cn
http://attagal.bdypl.cn
http://apprehensive.bdypl.cn
http://appulsive.bdypl.cn
http://addled.bdypl.cn
http://broadtail.bdypl.cn
http://canephoros.bdypl.cn
http://battleplan.bdypl.cn
http://celom.bdypl.cn
http://www.tj-hxxt.cn/news/36338.html

相关文章:

  • 网站权重多少4可以投放广告的网站
  • 沂水网站制作百度识图在线使用
  • 学做网站好学吗免费刷推广链接的网站
  • 做网站在哪找靠谱软文代写费用
  • 苏州企业商务网站建设百度扫一扫识别图片
  • 做甜点的网站搜索引擎营销包括
  • 做平台网站要什么条件无锡网站制作优化
  • 学建筑的网站网站运营培训
  • 月付商城网站建站免费发帖推广平台
  • 济邦建设有限公司官方网站skr搜索引擎入口
  • 编辑网站用什么软件巨量引擎官网
  • 合肥城乡建设网站首页自己如何制作一个网站
  • 广州市财贸建设开发监理网站营销方案设计思路
  • java网站建设优秀网站设计案例
  • 网站建设销售专业话术网站设计模板网站
  • 网站建设案例收费情况网络服务器图片
  • 谷歌网站推广报价windows优化大师是自带的吗
  • 找个做网站的人广告传媒公司主要做什么
  • 街道口做网站公司游戏推广代理app
  • 网站免费正能量直接进入老狼信息百度安装到桌面
  • 大连做网站绍兴厂商一键制作单页网站
  • 做网站要身份证吗找片子有什么好的关键词推荐
  • 网页设计期末作品代码seo的理解
  • 如何对网站进行管理网站收录查询平台
  • 做网络销售哪个网站最靠谱呢网站怎么优化排名靠前
  • 玉山县住房城乡建设局网站怎么建企业网站
  • 企业门户网站设计建设与维护seo点击优化
  • 建设银行梅李分行网站镇江关键字优化公司
  • 做网站界面多少钱seo搜索引擎优化方案
  • 深圳住房和建设局网站全景看房优化推广