【店滴云】店滴云单模块,单服务可以以微服务的方式分割了
店滴云单模块,单服务可以以微服务的方式分割了
随着企业业务规模的扩大和技术的不断进步,传统的单体应用架构已经难以满足企业对灵活性和可扩展性的需求。在这种背景下,微服务架构以其独特的优势逐渐成为了企业信息化建设的首选。近日,店滴云宣布其单模块已成功实现微服务化分割,为企业带来了更加高效、灵活的服务体验。
微服务架构是一种将单个应用拆分为一组小型服务的方法,每个服务都运行在自己的进程中,并通过轻量级通信机制进行交互。这种架构风格使得企业能够更加灵活地部署、扩展和管理应用,同时也提高了系统的可维护性和可靠性。
店滴云单模块的微服务化分割,意味着原本庞大而复杂的单体应用被拆解为多个独立的小型服务。每个服务都专注于完成特定的业务功能,并拥有自己的技术栈和数据模型。这样的设计使得每个服务都可以独立地进行开发、测试和部署,从而大大提高了开发效率和响应速度。
同时,微服务化分割还带来了更好的资源利用率和可扩展性。由于每个服务都是独立的,企业可以根据实际需求对不同的服务进行独立的扩展或缩减,避免了资源的浪费和成本的增加。此外,每个服务都可以使用最适合的技术栈和编程语言进行开发,进一步提高了系统的灵活性和可维护性。
店滴云单模块的微服务化分割不仅简化了系统的复杂性,还为企业带来了更多的商业机会。通过将服务进行拆分,企业可以更加精准地定位用户需求,提供更加个性化的服务。此外,这种架构风格也使得企业可以更加灵活地与其他合作伙伴进行集成和协作,共同打造更加完善的生态系统。
使用教程:
# HTTP ## 配置 在根目录下的 .env RPC_SERVER_IP = 127.0.0.1 RPC_SERVER_PORT = 8080 ## 启动 建议在linux下使用 windows: swoole-cli rpc.php linux: php rpc.php ## 扩展插件服务 common\\rpc\\AddonsRpcService.php ## module 配置 以插件diandi_hotel为例,配置rpc模块 addons\\diandi_hotel\\rpc ### 代码示例 ```php namespace addons\\diandi_hotel\\rpc; use common\\rpc\\BaseAbstractServiceModule; use common\\rpc\\PdoPoolContainer; use EasySwoole\\Rpc\\Manager; use Swoole\\Coroutine\\Channel; use Swoole\\Database\\MysqliPool; class Device extends BaseAbstractServiceModule { public static string $moduleName = 'Device'; function moduleName(): string { return 'Device'; } function ceshi() { $pool = PdoPoolContainer::getInstance()->get('pdoPool'); $pdo = $pool->get(); $statement = $pdo->prepare("select * from dd_user where id = ?"); if (!$statement) { throw new \\RuntimeException('Prepare failed'); } $result = $statement->execute([11]); if (!$result) { throw new \\RuntimeException('Execute failed'); } $result = $statement->fetchAll(); // if ($a + $b !== (int)$result[0][0]) { // throw new \\RuntimeException('Bad result'); // } $pool->put($pdo); $this->response()->setMsg(['a'=>1221,'b'=>$result]); } } ``` ## 数据库连接池 最后的连接池释放很重要:$pool->put($pdo); ```php $pool = PdoPoolContainer::getInstance()->get('pdoPool'); $pdo = $pool->get(); $statement = $pdo->prepare("select * from dd_user where id = ?"); if (!$statement) { throw new \\RuntimeException('Prepare failed'); } $result = $statement->execute([11]); if (!$result) { throw new \\RuntimeException('Execute failed'); } $result = $statement->fetchAll(); // if ($a + $b !== (int)$result[0][0]) { // throw new \\RuntimeException('Bad result'); // } $pool->put($pdo); ``` ### 缓存连接池 最后的连接池释放很重要:$pool->put($redis); ```php $pool = PdoPoolContainer::getInstance()->get('redisPool'); $redis = $pool->get(); $result = $redis->set('foo', 'bar'); if (!$result) { throw new RuntimeException('Set failed'); } $result = $redis->get('foo'); if ($result !== 'bar') { throw new RuntimeException('Get failed'); } $pool->put($redis); ``` ### 请求地址 http://127.0.0.1:8080/addons/device/ceshi ### addons rpc服务名称 ### device rpc模块名称 ### ceshi rpc模块方法名称 # 其他服务 可以在 rpc模块方法 ceshi 中调用 ```php use Simps\\MQTT\\Message\\SubAck; use Simps\\MQTT\\Protocol\\ProtocolInterface; $codes = [0]; $message_id = 8520; $ack = new SubAck(); $ack->setCodes($codes) ->setMessageId($message_id); $ack_data = $ack->getContents(); $ack_data = (string) $ack; // MQTT5 $ack->setProtocolLevel(ProtocolInterface::MQTT_PROTOCOL_LEVEL_5_0) ->setCodes($codes) ->setMessageId($message_id) ->setProperties([ 'will_delay_interval' => 60, 'message_expiry_interval' => 60, ]); $ack_data = $ack->getContents(); $ack_data = (string) $ack; ```

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
比 Nest.js 更优雅的 TS 控制反转策略 - 依赖查找
一、Cabloy5.0内测预告 Cabloy5.0采用TS对整个全栈框架进行了脱胎换骨般的大重构,并且提供了更加优雅的ts控制反转策略,让我们的业务开发更加快捷顺畅 1. 新旧技术栈对比: 后端 前端 旧版 js、egg2.0、mysql js、vue2、framework7 新版 ts、egg3.0、多数据库兼容(支持mysql、postgresql) ts、vue3、quasar 2. 框架开发两大趋势 TS化:这是显而易见的趋势,不必赘言 ESM化:从目前趋势看,前端框架已经全链路ESM化了,但是,大多数后端框架仍然是Commonjs。即便是egg3.0也仍然是Commonjs。由于egg的定位仍然是元框架,CabloyJS5.0在egg基础上仍然开发出了全量ESM化的业务模块化系统(在Commonjs之上进行ESM化的具体机制是什么,另有文章阐述) 二、比nestjs更优雅的ts控制反转策略 基于TS的后端框架一般都会提供依赖容器,实现控制反转。控制反转有两种策略:依赖注入和依赖查找。CabloyJS5.0同时支持依赖注入和依赖查找,并且通过模块范围的辅助,让依赖查找的代码更...
- 下一篇
袋鼠数据库工具 v4.99.1 已发布
重点特性介绍:SQLServer 支持和改进稳定性 这是一个稳步迭代的中间版本,修复了两个崩溃的存留已久的Bug,历史性的改善了稳定性,比以往任何时候都更稳定,强烈推荐所有用户升级到这个版本; 本月的核心变化是: 继续完善 SQL Server 支持,主要聚焦表设计支持; 优化了 macOS 菜单支持,支持更好的与系统融合; 新特性或修复的缺陷列表 改善连接空间关闭体验 macOS: 重构应用菜单 SQLServer: 增加容器数据库支持 SQLServer: 完善表设计支持 SQLServer: 完成登录设计支持 SQLServer: 完成用户设计支持 修复: SQL Server 事务脚本导致的崩溃 修复: 配置对话框事件问题 修复: 无效数据导致的编辑器断言崩溃 修复: 日志处理导致的编辑器断言崩溃 更新中文语言支持(zh-CN/zh-TW/zh-SG/zh-HK) 下载与安装 袋鼠数据库管理工具 4.99 新版本功能快照
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- CentOS8安装Docker,最新的服务器搭配容器使用
- Hadoop3单机部署,实现最简伪集群
- 设置Eclipse缩进为4个空格,增强代码规范
- CentOS关闭SELinux安全模块
- SpringBoot2全家桶,快速入门学习开发网站教程
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- MySQL8.0.19开启GTID主从同步CentOS8