首页 文章 精选 留言 我的

精选列表

搜索[Service Mesh],共10000篇文章
优秀的个人博客,低调大师

Service-oriented architecture (SOA)

SOA 与 REST很多相同之处,目前SOA主要是基于SOAP实现,也有基于MQ的实现。而REST只限于HTTP POST/GET/PUT/DELETE等等。 我个人比较喜欢机遇TCP的SOA实现,不喜欢SOAP大量XML传输。 15.4.1.SOAP实现 这里提供一个简单的机遇SOAP实现的SOA框架 index.php入口文件 <?php define ('CONFIG_DIR', '../config/'); define ('LIBRARY_DIR', '../library/'); define ('DEBUG', false); //define ('DEBUG', ture); require_once(CONFIG_DIR. 'default.php'); $remote_addr = $_SERVER['REMOTE_ADDR']; if(!in_array($remote_addr, $firewall)) { printf("Permission denied: %s", $remote_addr); exit(0); } $request_uri = $_SERVER['REQUEST_URI']; $classspath = LIBRARY_DIR.strtolower($request_uri) . '.class.php'; if( is_file($classspath) ){ require_once($classspath); }else{ die("Cannot loading interface!"); } $class = ucfirst(substr($request_uri, strrpos($request_uri, '/')+1)); if( DEBUG ){ printf("%s<br>",$class); } if (class_exists($class)) { $server = new SoapServer(null, array('uri' => "http://webservice.example.com")); $server->setClass($class); $server->handle(); }else{ die('Object isnot exist.'); } 接口文件 <?php require_once('common.class.php'); class Members extends Common{ private $dbh = null; public function __construct() { parent::__construct(); $this->dbh = new Database('slave'); } public function getAllByUsernameAndMobile($username,$mobile){ $result = array(); if(empty($username) or empty($mobile)){ return($result); } $sql = "SELECT username, chinese_name, sex FROM members m, members_digest md WHERE m.id = md.id and m.username= :username and md.mobile = md5( :mobile );"; $stmt = $this->dbh->prepare($sql); $stmt->bindValue(':username', $username); $stmt->bindValue(':mobile', $mobile); $stmt->execute(); $result = $stmt->fetch(PDO::FETCH_ASSOC); return($result); } public function getAllByLimit($limit,$offset) { $sql = "SELECT username FROM members limit ".$limit.",".$offset; $stmt = $this->dbh->query($sql); while ($row = $stmt->fetch()) { //printf("%s\r\n", $row['username']); $result[] = $row['username']; } return $result; } function __destruct() { $this->dbh = null; } } 客户端调用实例 <?php $options = array('uri' => "http://webservice.example.com", 'location'=>'http://webservice.example.com/members', 'compression' => 'SOAP_COMPRESSION_ACCEPT | SOAP_COMPRESSION_GZIP', 'login'=>'neo', 'password'=>'chen', 'trace'=>true ); $client = new SoapClient(null, $options); try { print_r($client->getAllByUsernameAndMobile('280600086','13113668890')); print_r($client->getAllByLimit(20,20)); } catch (Exception $e) { echo 'Caught exception: ', $e->getMessage(), "\n"; } Nginx 虚拟主机配置文件 /etc/nginx/conf.d/webservice.example.com.conf server { listen 80; server_name webservice.example.com; charset utf-8; access_log /var/log/nginx/webservice.example.com.access.log main; auth_basic "Login"; auth_basic_user_file htpasswd; location / { root /www/example.com/webservice.example.com/htdocs; index index.html index.php; if ($request_filename !~ (js|css|images|robots/.txt|.*\.html|index/.php) ) { rewrite ^/(.*)$ /index.php/$1 last; break; } } error_page 500 502 503 504 /50x.html; location = /50x.html { root /usr/share/nginx/html; } location ~ /index.php/ { root /www/example.com/webservice.example.com/htdocs; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME /www/example.com/webservice.example.com/htdocs$fastcgi_script_name; include fastcgi_params; } } 每增加一个功能需求,在library中创建一个 Class 文件即可。 index.php 有IP过滤功能,禁止非法IP访问 客户端采用压缩传输,节省xml传输开销 Nginx 设置了HTTP认证,防止他人探测,另外提示你还可以采用双向SSL认证。 15.4.2.MQ 实现 原文出处:Netkiller 系列 手札 本文作者:陈景峯 转载请与作者联系,同时请务必标明文章原始出处和作者信息及本声明。

优秀的个人博客,低调大师

aws 创建基于vpc的elasticsearch service

1.创建vpc 2.创建安全组 3.创建elasticsearch域 (1)选择elasticsearch版本 (2)配置集群和存储。建议启用2个专用主节点,增加可用性。实例类型根据需要来选择 (3)设置访问权限。这里选择在第一步和第二步中创建的vpc和安全组 (4)设置访问策略。这里选择请勿要求使用IAM凭证对请求签名。 (5) 设置安全组 因为aws上的elasticsearch地址是相当于一个负载均衡,后端的elasticsearch的9200端口是访问不到的。这里安全组设置的时候,选择所有流量,然后针对内网ip进行开放 本文转自 shouhou2581314 51CTO博客,原文链接:http://blog.51cto.com/thedream/2047881,如需转载请自行联系原作者

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

用户登录
用户注册