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

自己做一个外贸网站怎么样建设网站运营方案

自己做一个外贸网站怎么样,建设网站运营方案,中外人才网,历史类网站策划简介#xff1a; 杭州开课啦教育科技有限公司是一家致力于为中小学生提供学习辅导的在线教育公司#xff0c;目前公司后端服务基础设施主要依托于阿里云原生#xff0c;其中包含计算、网络、存储以及 Kubernetes 服务。 技术选型背景 2020 年是开课啦公司发展壮大的一年 杭州开课啦教育科技有限公司是一家致力于为中小学生提供学习辅导的在线教育公司目前公司后端服务基础设施主要依托于阿里云原生其中包含计算、网络、存储以及 Kubernetes 服务。 技术选型背景 2020 年是开课啦公司发展壮大的一年整个公司团队由原来的几百人扩充至现在的几千人在集中使用的时候基本上会有几千人同时在运营后台进行操作公司原有的内部后台运营系统是用 PHP 搭建起来的性能跟业务上已逐渐不能满足公司的需求规划加上目前开课啦公司开发部已经做了微服务拆分主体对外服务是 java 语言的 Dubbo 集群后台系统需要无缝对接 java 的 Dubbo 服务所以 PHP 已经逐渐不能满足开课啦公司的需求。 当时自己也调研过 PHP 的 Dubbo 项目由于项目已基本无人更新维护所以 pass 掉后面自己对简洁高性能的 go 语言感兴趣然后就关注到了 Dubbo-go 项目经过一段时间的调研之后发现 Dubbo Go 符合我们的业务需要并且社区非常的活跃后面便决定选用 Dubbo-go 作为后台的 pc 业务框架。 可能也有同学会问为什么不使用跨言支持程度更好的 gRPC 呢因为很多公司最开始的 RPC 服务集群都是基于 Dubbo 生态构建的如果换框架成本太大所以基本不会考虑gRPC 虽然跨语言支持程度更好但是很多东西都需要自己造轮子比如服务注册服务发现日志监控等。 当时在决定选用 Dubbo-go 的时候开发内部也有一些反对的声音的为什么不直接转 java转 java 的话就没有跨语言通信的问题了转 java 的问题在于入门成本高而且对于整个公司的技术栈来说保持语言的多样性才能更加从容的应对未来的业务变化Go 本身是一个不弱于 Java 的高性能语言非常适合微服务架构。 面临的挑战 确定了框架选型后我接到的首要任务便是要搭建出一套可快速创建业务项目的脚手架开发出基于 HTTP 协议的 RPC 代理服务部署需要接入公司的容器化部署平台一切都是从零开始在网上基本上找不到可以借鉴的资料。 首先是要进行 Dubbo-go 项目的架构的规划确定项目目录结构经过参考 Dubbo-go Demo 以及其它的 Go 项目最终确定了项目的目录结构以下目录结构可作为参考。 为了与 Java 服务注册中心保持一致Dubbo-go 在项目选型上选用如下组件 使用 zookeeper 作为注册中心nacos 作为配置中心数据库 orm 采用 gorm消息队列使用 RocketMQ 为了增加开发的效率我们在 provider 服务初始化前可以对配置进行精简只保留最基础的配置就可以类似下面这种provider 服务的编码参考 Dubbo-go demo 就可以了。 下面是服务启动的 main 方法代码 Dubbo-go RPC 服务网关设计 一般使用 Dubboprovider 端需要暴露出接口和方法consumer 端要十分明确服务使用的接口定义和方法定义还有入参返参类型等等信息还需要基于 provider 端提供的 API两端才能正常通信调用。 然而网关的使用场景是并不关心要调用的接口的详细定义网关只关注要调用的方法、传递的参数、能接收返回结果就可以了实现网关代理的基础是 Dubbo/Dubbo-go 的泛化调用特性。 下面是 Dubbo-go 官方给的 demo泛化服务加载后需要等待 3 秒才能完成调用然而在实际使用的时候肯定是不能实时加载服务去等待 3 秒所以在网关应用启动时就需要加载缓存好需要泛化调的服务。 经过对 Dubbo-go 泛化调用 demo 的研究发现用该特性设计 dubbo-go 网关是可行的难点在于我们需要把每一个需要网关代理 RPC 服务方法的参数以及服务的路径等配置获取到并缓存起来这样才能在调用前初始化好泛化调用服务一个服务的配置如下。 由于是用 go 语言做的网关代理所以不能通过 Java 的 jar 包来获取到 Java RPC 服务配置如果通过人工维护的话工作量太大而且易出错显然是不可接受的。经过一段时间的了解Java 服务可以通过注解来实现配置的获取Java 端在方法上加上注解后启动服务的时候会将配置信息通过消息发送到 MQ网关消费这些消息来实现获取 Java RPC 服务的配置。 Dubbo Go 的 RPC 服务由于 go 语言不支持注解所以我经过思考自己写了一个扫描代码的小工具在每个 RPC 服务方法前加上对应的注释通过对注释的扫描来获取 RPC 服务的配置获取到配置后在项目目录内生成 RPC 服务配置启动应用的时候读取配置发送到 MQ。 网关代理实现之后还可以在网关的基础实现更多的功能比如 token 验证、白名单、限流、熔断、日志监控功能网关代理请求实现效果如下 容器化部署 公司内部的容器化部署环境为阿里云的 K8s部署至 K8s 平台只需要提供镜像文件由于 Dubbo-go 编译后是一个二进制的文件不需任何额外的第三方库能在 Docker 环境下稳定运行。有 docker 镜像文件如下图所示可以用 centos 等任一 linux 发行版作为 base 镜像。 LABEL maintainerxxxxx.com LABEL version1.0 LABEL descriptionKKL-GO-NKO-BASEARG envTypestable #设置环境变量 ENV envType ${envType} #编译打包好的压缩包 ADD ./target/nko-base-${envType}.tar.gz /app/WORKDIR /app EXPOSE 20000 镜像写好后提供给发布平台发布平台机器启动镜像并解压打包文件执行 Dubbo-Go 程序 。 Container entrypoint set to [bash, -c, tar -zxf nko-base-stable.tar.gz SERVER_ENVkubernetes sh ./nko-base/bin/load.sh start -groupstable] 由于开发测试到生产一般是有多个部署环境的所以我们需要改动的dubbo-go samples demo 里的编译脚本让其支持多环境打包。 另外Dubbo-go 默认注册的 IP 是 K8s pod 的虚拟 IP不同 K8s 集群之间网络是不能互通的所以如果需要跨集群调用就需要修改默认注册 IP将默认注册的 pod IP 端口 修改为 Kubernetes 实体机的 IP 加对应端口Kubernetes 会在 pod 内写入实体机的 IP 加对应端口环境变量应用程序可以通过读取环境变量获取实体机的 IP加端口如果需要实现此功能需要修改 Dubbo-go 的注册逻辑。例如以 zookeeper 注册中心为例我们可以通过扩展 registery/zookeeper/registry.go的 registerTempZookeeperNode 方法来实现修改注册 IP 跟端口代码如下图Dubbo-go 官方将在后面的版本以配置的形式支持自定义注册 IP 跟端口的功能。 func (r *zkRegistry) registerTempZookeeperNode(root string, node string) error {...regIp os.Getenv(constant2.RegistryEnvIP) //实体机的ipregPort os.Getenv(constant2.RegistryEnvPort) //实体机的端口urlNode, _ : common.NewURL(node)role, _ : strconv.Atoi(urlNode.GetParam(constant.ROLE_KEY, ))if role common.PROVIDER regIp ! regPort ! {urlNode.Ip regIpurlNode.Port regPortnode url.QueryEscape(urlNode.String())}zkPath, err r.client.RegisterTemp(root, node)... } 作者曾凡维, 一个有 9 年服务端业务开发经验的一线程序员曾在腾讯阅文等多家公司担任后端开发工程师目前就职杭州开课啦教育科技有限公司从事 go 语言服务基础架构和中间件及部分业务开发工作。 原文链接 本文为阿里云原创内容未经允许不得转载
http://www.yutouwan.com/news/236964/

相关文章:

  • 50个优秀网站保山市住房和城乡建设局门户网站
  • 成都手机网站建如今做啥网站能致富
  • 网站流量少加盟创业
  • 网站公司未来计划ppt怎么做wordpress编辑不了
  • nodejs网站开发做网站坚持原创文章有什么好处
  • 网站开发 明细网站的专题模板制作软件
  • 百度建设网站的目的安徽省建设厅网站工程师查询
  • php网站收录中关村在线官网首页
  • 设计网站源码衡水做企业网站的公司
  • 网站建设信(信科网络)敦化市住房和城乡建设局网站
  • 网站改版的意义房地产销售工作总结
  • 嘉兴市南湖区建设街道网站做电影网站多少钱
  • 什么网站可以自己做房子设计图建筑网片多少钱一平方
  • 网站备案期限免费设计房屋装修软件
  • 网站网页设计项目计划书西宁做腋臭哪里北大DE网站
  • 重庆百度网站快速排名应该如何做营销型网站
  • 网站无法显示网页内容aitt网站建设中
  • 律师个人网站建设SEO网站建设全方位部署
  • 个人建设网站成本wordpress for linux
  • 中小企业网站建设济南兴田德润厉害吗机械加工网瓦房北方机床附件厂
  • 域名服务网站建设科技公司wordpress网站克隆
  • 怎么做网站平台教程可以建设彩票网站吗
  • 国外电子政务j建设与我国电子政务网站建设对比俄语网站建站
  • 网站建设找伟杨科技ios企业开发者账号
  • 官方网站是什么怎样做克隆网站
  • 上海团购网站建设全国十大摄影培训机构
  • 高端企业网站定制公司湖南土特产销售网网站建设制作
  • 做文艺文创产品的网站网站的建设与颜色搭配
  • 唯品会网站架构种子网站模板
  • 做网站应选那个主题青海网站建设公司哪家好