精华内容
下载资源
问答
  • 如何做到服务器虚拟化 毫无疑问,如果您一直关注技术趋势,那么您会看到“无服务器”的兴起。 在某些情况下,“无服务器”被称为“下一个应用程序体系结构”样式。 我什至听说有人说“您不需要技术X,因为无服务器...

    如何做到服务器虚拟化

    毫无疑问,如果您一直关注技术趋势,那么您会看到“无服务器”的兴起。 在某些情况下,“无服务器”被称为“下一个应用程序体系结构”样式。 我什至听说有人说“您不需要技术X,因为无服务器是未来的方式”或“技术X是红鲱鱼,因为无服务器”等。在本期中,我们将了解为什么它与“微服务与无服务器”。

    到目前为止,我对无服务器的最佳描述来自Patrick Debois在他的“无服务器到完整服务”演讲中 在该演讲中,他为“无服务器”提供了一个定义,并实际上定义了什么是什么,而不是什么不是 专注于它不是什么(即,没有服务器!!!!)实际上会分散任何真实含义(当然,还有服务器!!)。 通过集中的事实,它更多的是使用作为提供的服务(想事情像SQS,DynamoDB时,Gmail,谷歌日历,SalesForce公司,快速度等),将它们订在一起,以提供某种功能,我们可以得出一个更有趣的定义

    将核心基础架构服务外包给服务提供商,并通过API(和功能)将它们组合在一起以提供业务价值

    在许多方面,“利用现有服务并在其之上构建”的想法并不新鲜。 这是“面向服务的体系结构”背后的精神的化身:

    微服务与无服务器

    如果我们可以利用现有的服务来降低进入门槛(即注册一个API而不是购买硬件,设置安全性/网络/ DNS /操作系统等),那么我们可以为我们的客户更快地构建有趣的东西。 这是什么是无服务器的一部分。 第二部分是您不必拥有来自这些不同服务的所有技术的事实。 也就是说,您需要支付使用费(计量)和SLA,而您不拥有并且必须解决棘手的技术问题才能使用提供业务价值的功能。 Ben Kehoe 在最近的播客中很好地传达了这一点。 我完全赞同这个。

    因此,当客户问我“如果无服务器是应用程序体系结构的下一个发展趋势,我是否应该跳过微服务和容器”? 答案:

    尽可能地做到无服务器,但不止于此。

    让我们剖析一下。

    作为技术专家,我们被技术和任何新的闪亮趋势所吸引。 无服务器,容器等都很重要。 但归根结底,我们作为技术专家的作用是帮助企业发现和利用企业价值,并且比竞争对手更快地做到这一点。

    如果我们处于应用程序生命周期的“探索”部分(就像所有初创公司一样),我们想要做的就是Swift使关于将为客户创造价值的假设失效,并同样Swift地找到能够为客户创造价值的假设。 客户在看到价值之前就无法明确表达其价值。 最好通过将服务摆在它们前面来快速进行试验,并观察它们的响应方式。 如果某件事对客户的兴趣不大,最好抛弃它并继续前进。 为此,我们不能在建立基础设施,开发成本,合作伙伴等方面投入大量资金。我们必须尽可能便宜地运行这些实验,而“无服务器”方法为实现这一目标提供了绝好的机会。 我们可以利用现有的技术服务为客户创建数字资产,而无需大量投资,而且至关重要的是:我们可以随行付款。 如果我们对新产品/服务的兴趣为零,那么花费不多。 如果我们最初有一些不可预测的棘手的兴趣,那么我们可以提供一个平台(服务+ FaaS),可以快速扩展而不会造成很多麻烦。

    如果我们偶然发现确实能够提供客户价值的产品(即产品/市场适应性),那么我们希望在此基础上进行扩展,扩展并围绕其构建有利润的产品。 此时,您可能会发现自己想要采用部分无服务器且部分非无服务器的体系结构来解决此问题。 您将不得不面对以下两个技术决策:“我应该拥有多少堆栈才能实现业务价值和差异化”,以及“我愿意将SLA,法规遵从性,价格和路线图外包给我的服务提供商” ? 在探索阶段,将所有内容外包给服务提供商可能很好。 但是随着业务的成熟,关于这些决定如何影响组织(结构,运营,TCO等)的真实讨论。 这是一个影响我们客户的非常实际的问题。

    当您开始为新产品/服务找到可预测的模式,决定要优化某些部分时(包括成本和技术因素,例如延迟,尾部延迟等),您可能会认为无服务器方法过于昂贵,并且可能值得拥有更多堆栈部分的所有权。 看一下无服务器及其周围基础设施的这种情况,对于使用模式更可预测的应用程序来说,它变得太昂贵了

    最后,对于确实能产生大量收益的现有应用程序,您不能仅仅将其全部神奇地转移给服务提供商。 但是,您可以尝试对其中的某些部分进行现代化改造,以参与公司的一些较新的数字计划。 我们看到组织通过对基于容器和Kubernetes构建的服务体系结构(微服务/ API / SOA等)进行现代化升级,朝着更高性能的IT迈进了巨大的步伐,如果将其扩展到其逻辑结论,则可以将其构建为组织服务的平台,从而实现组织的各个部分都变得“无服务器”。 也就是说,组织的一部分(从事探索性工作的人)可以利用企业的其余部分,而不必严格“拥有”整个实施方案。

    企业资产组合的不同部分以及应用程序开发生命周期的不同范围要求使用不同的工具和方法,所有这些工具和方法都旨在“在当前环境下,最快实现价值的最佳方法是什么?”。 我们应该更加专注于发掘我们真正的“背景”,并在此基础上做出关于投资,所有权,技术等的最佳决策。

    问你自己:

    • 您在产品生命周期中处于何处?
    • 您应该拥有什么技术来解决业务问题?
    • 您的团队目前对现有技术有多满意?
    • 您正在考虑采用“无服务器”功能的功能对您的业务有多么战略和“核心”?

    很高兴在评论中或Twitter @christianposta上发表分歧或想法

    尽可能做到无服务器,但不要超过 2018年9月14日发布的服务器。

    翻译自: https://www.javacodegeeks.com/2018/09/be-as-serverless-as-you-can-but-not-more-than-that.html

    如何做到服务器虚拟化

    展开全文
  • 尽量减少服务之间的依赖(服务功能做到高内聚) API设计做到送耦合 基于通用的通信机制,首选基于HTTP的Restful API 服务器端可自由添加非必须的请求参数 服务器端可自由添加响应参数 服务器端可自由添加错误...

    服务独立部署:

    1. 尽量减少服务之间的依赖(服务功能做到高内聚)
    2. API设计做到送耦合
      • 基于通用的通信机制,首选基于HTTP的Restful API
      • 服务器端可自由添加非必须的请求参数
      • 服务器端可自由添加响应参数
      • 服务器端可自由添加错误代码
      • 服务器端通过服务版本号控制不兼容的修改  

    转载于:https://www.cnblogs.com/fight-tao/p/5641340.html

    展开全文
  • 想要一份可以参考的代码,我打算一个客户端发送数据到服务器上,然后服务器把收到的数据转发给另一个客户端,现在找到的方法都是直接客户端和服务器单向连接的,客户端发服务器收,我想要他们双向通信,能够让服务器...
  • 因为socket的多线程方案我有点不懂,希望也有人能够利用这种方案,求各位了
  • nginx 可以做到实时的健康监测吗?一旦一个服务 kill 不往这个服务上转发请求,不过这样好像还是有一个问题,我要升级必然要 kill 掉一个服务,kill 瞬间如果还有请求在这个实例里,那么这个请求就无法返回数据,...

    1:例如一个服务两个实例,前面 nginx 负载均衡。

    nginx 可以做到实时的健康监测吗?一旦一个服务 kill 不往这个服务上转发请求,不过这样好像还是有一个问题,我要升级必然要 kill 掉一个服务,kill 瞬间如果还有请求在这个实例里,那么这个请求就无法返回数据,这样用户感知到异常了。 所以最好的方式是要重启一个服务前,告诉负载均衡器不要转发请求到我这里,然后等一段时间等这个机器上所有请求都处理完,这个时候老的请求完毕,新的请求不过来,就可以更新重启。

    nginx 下有这样的功能吗? haproxy 下倒是有 agent check 可以实现这个功能。
     

    解决方案:

    nginx -s reload|reopen|stop|quit  #重新加载配置|重启|停止|退出 nginx

    nginx -s reload 
    nginx配置平滑更新
    为了让主进程重新读取配置文件,应该向主进程发送一个HUP信号,主进程一旦接收到重新加载配置的的信号,它就检查配置文件语法的有效性,然后试图应用新的配置,即打开新的日志文件和新的socket 监听,如果失败,它将回滚配置更改并继续使用旧的配置,如果成功了,它开启新的工作进程,并给旧的工作进程发消息让它们优雅的关闭,旧的工作进程接收到关闭信号后,不再接收新的请求,如果已有请求正在处理,等当前请求处理完毕后关闭,如果没有请求正在处理,则直接关闭。

     

    upstream names{
        server www.abc.com:8080 ;
        server 127.0.0.1:8080 ;
    }

        map $http_upgrade $connection_upgrade {  #websocket
                    default upgrade;
                    ''      close;
            }

    server {
        listen       443 ssl;
        server_name  www.xyz.cn;

        ssl_certificate "/usr/src/www.xyz.cn/Nginx/1_www.xyz.cn_bundle.crt";
        ssl_certificate_key "/usr/src/www.xyz.cn/Nginx/2_www.xyz.cn.key";
        ssl_session_timeout 5m;
            ssl_protocols TLSv1 TLSv1.1 TLSv1.2; #按照这个协议配置
            ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;#按照这个套件配置
            ssl_prefer_server_ciphers on;


            location ~* '/websocket/' {
                proxy_pass http://local;
                proxy_http_version 1.1;
                proxy_set_header Host $host;
                proxy_set_header X-Real-IP $remote_addr;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                proxy_read_timeout 120s;

                proxy_set_header Upgrade websocket;
                proxy_set_header Connection Upgrade;
            }

            location / {
                    proxy_pass http://names; #转发到本机项目端口
            }
     
    }

    2:如果你的nginx服务器给2台web服务器做代理,负载均衡算法采用轮询,那么当你的一台机器web程序iis关闭,也就是说web不能访问,那么nginx服务器分发请求还是会给这台不能访问的web服务器,如果这里的响应连接时间过长,就会导致客户端的页面一直在等待响应,对用户来说体验就打打折扣,这里我们怎么避免这样的情况发生呢。这里我配张图来说明下问题。

    如果负载均衡中其中web2发生这样的情况,nginx首先会去web1请求,但是nginx在配置不当的情况下会继续分发请求道web2,然后等待web2响应,直到我们的响应时间超时,才会把请求重新分发给web1,这里的响应时间如果过长,用户等待的时间就会越长。

    下面的配置是解决方案之一。

    proxy_connect_timeout 1;   #nginx服务器与被代理的服务器建立连接的超时时间,默认60秒
    proxy_read_timeout 1; #nginx服务器想被代理服务器组发出read请求后,等待响应的超时间,默认为60秒。
    proxy_send_timeout 1; #nginx服务器想被代理服务器组发出write请求后,等待响应的超时间,默认为60秒。
    proxy_ignore_client_abort on;  #客户端断网时,nginx服务器是否终端对被代理服务器的请求。默认为off。


    3:如果使用upstream指令配置啦一组服务器作为被代理服务器,服务器中的访问算法遵循配置的负载均衡规则,同时可以使用该指令配置在发生哪些异常情况时,将请求顺次交由下一组服务器处理。

    proxy_next_upstream timeout;  #反向代理upstream中设置的服务器组,出现故障时,被代理服务器返回的状态值。

    状态值可以是:error|timeout|invalid_header|http_500|http_502|http_503|http_504|http_404|off

    • error:建立连接或向被代理的服务器发送请求或读取响应信息时服务器发生错误。
    • timeout:建立连接,想被代理服务器发送请求或读取响应信息时服务器发生超时。
    • invalid_header:被代理服务器返回的响应头异常。
    • off:无法将请求分发给被代理的服务器。
    • http_400,....:被代理服务器返回的状态码为400,500,502,等。
    展开全文
  • 本想通过android程序直接访问数据库获取数据,无奈在测试的过程中android一直显示无法找到驱动程序。上网找了许多资料,依旧没有找到解决的方法。因此决意搭建中介服务器。通过中介服务器进行中转,实现对第三方电脑...

    本想通过android程序直接访问数据库获取数据,无奈在测试的过程中android一直显示无法找到驱动程序。上网找了许多资料,依旧没有找到解决的方法。因此决意搭建中介服务器。通过中介服务器进行中转,实现对第三方电脑mysql操控以及和android之间的数据通信。

    最后测试成功。

    具体步骤如下:

    服务端:

    1.首先在服务端的WEB-INF文件夹的lib目录下面引入mysql驱动程序:

    397d662c8e962f45cf7acafeb8875732.png

    5393229.html2.引入完毕后,右击项目,新建java文件:

    a121062f1bb6ad76b9174be272c5b609.png

    3.写上代码:

    import com.mysql.jdbc.*;

    import com.mysql.jdbc.Connection;

    import com.mysql.jdbc.ResultSet;

    import com.mysql.jdbc.Statement;

    import java.sql.*;

    import java.util.ArrayList;

    import java.util.List;

    public class conn {

    static List list = null;

    public static void main(String[] args) throws SQLException{

    conn con = new conn();

    con.getData();

    }

    public void getData() throws SQLException{

    //驱动数据库

    try {

    Class.forName("com.mysql.jdbc.Driver");

    } catch (ClassNotFoundException e) {

    // TODO Auto-generated catch block

    e.printStackTrace();

    }

    System.out.println();

    //获取信息

    //在此写入相应信息

    String dbName = "";

    String tableName = "";

    String userName = "";

    String password = "";

    String url = "jdbc:mysql://:/" + dbName + "?user="

    +userName + "&password=" + password;

    Connection conn = (Connection) DriverManager.getConnection(url);

    System.out.print("数据库连接成功!");

    }

    }

    这边的步骤就书写完毕了,然后开始对对方电脑进行配置(此测试为linux):

    1.

    将 /etc/mysql/my.cnf中的bind-address注释掉

    2.将数据库中对应用户的host改为%

    至此本次测试成功了,成功后运行java程序,会打印出数据库连接成功!

    另:如果出现错误,可能还要设置对方防火墙等原因。

    本次测试失败了很多次最后意外的成功了,不排除成功原因之一是因为对方电脑搭建了java环境,但这点仍然不很确定。望大神指点!

    展开全文
  • 在实际环境中,如何做到Dubbo服务的热部署,不影响任何一个用户的请求。做到无感知升级。
  • 如果服务是分组部署(多 AZ 部署、多 Region 部署),且分组间能够做到尽量避免服务间的交互和基础设施共享,那么在变更中,就需要利用该特性,对分组进行逐一升级和观察,避免问题发生扩散,在出现问题的时候,通过...
  • 业务需求: 全国各省都有相同系统,系统上配置省份标识,想... 各省系统不能交叉调用,如何通过不同的zone来控制访问,例如山东的服务请求下游服务,只能请求山东的服务,不能请求到河南。 请大神指点如何实现
  • Spring cloud服务如何做到优雅下线

    千次阅读 2018-01-17 10:05:12
    利用Spring Boot Actuato的管理端点 ...修改服务提供者的pom.xml添加依赖 org.springframework.boot spring-boot-starter-actuator 配置启用shutdown endpoints.shutdown.enabled=true 本地启动
  • 盛大游戏是中国领先的网络游戏开发商、运营商和发行商,有着上万台的服务器,面对如此大量的服务器,盛大是如何做到远程服务器的自动管理的? 服务器一般是基于应用层的运维,硬件层面如何管理服务器?大...
  • 如何做到99.99%服务高可用的要求,需要各个角色的工程师共同努力。从部署的角度,本文介绍了高可用服务所需具备的规范,案例部分通过对Yum源服务架构的演变让读者更好的理解高可用服务部署,希望对大家有所帮助。 ...
  • 如何做到DHCP服务器的有效管理和维护? http://network.51cto.com 2010-09-29 16:19 佚名 天极网 我要评论(1) 下面我们针对DHCP服务器的管理和维护进行了讲解。那么包括三方面的分析:修改网关和DNS服务器...
  • 为了不让服务器出问题,真是绞尽脑汁呀~ 比如有这样的(网页加代码): 竟然还有这样的 而华盟君是这样的: 华盟君送给大家一条使用多年的秘密法则,凡使用此法则者,服务器做到了百分百的安全,这条法则就是关机、...
  • 作一个较为简单的负载均衡,在更新程序的时候顺序更新,当其实一个服务不再提供时,负载导到另外一台,顺序更新后,可满足服务热更新的需求,当然最好使用专门的部署脚本来实现。   转载于:...
  • 上篇文章如果有人问你 Dubbo 中注册中心工作原理,就把这篇文章给他大致了解了注册中心作用以及 Dubbo Registry 模块源码,这篇文章将深入 Dubbo ZooKeeper 模块,去了解如何实现服务动态的发现。 ps: 以下将 ...
  • <div><p>您这个下载框架中对于不支持range的服务器你这个也可以做到暂停和恢复,您这个是如何做到的?</p><p>该提问来源于开源项目:Aspsine/MultiThreadDownload</p></div>
  • 如何做到99.99%服务高可用的要求,需要各个角色的工程师共同努力。本文介绍了高可用服务在变更方面的经验积累和最佳实践,以及一些配置变更的易错点,供大家参考 近期,Cloudflare在更新WAF配置规则时,因其中一...
  • 那swoole-server将无法提供服务,导致业务中断,公司收入出现损失。 有一个非常有效并且在BAT等大型公司常用的方案是crontab重启监控。 原理是每1分钟执行一次shell脚本,检测server的master进程是否存活,如果存在...
  • 如何做到99.99%服务高可用的要求,需要各个角色的工程师共同努力。从部署的角度,本文介绍了高可用服务所需具备的规范,案例部分通过对Yum源服务架构的演变让读者更好的理解高可用服务部署,希望对大家有所帮助。...
  • 一般维保公司最高是7X24X4,那么我们是如何做到如此快的响应速度的呢? 全国覆盖凭借自有工程师和长期靠谱合作伙伴资源,我们可以调用40000名靠谱工程师,服务范围覆盖全国。 距离5km基于全国覆盖能力,在距离客户...
  • 时代,需要对数据中心处理过的大量数据进行清除,尤其是对硬盘和手机等设备上的数据,必须彻底销毁,才能做到 GDPR 合规。 电子垃圾处置的自动化趋势 AI和机器人技术正在***入数据中心行业,硬件自动化比以往...
  • 本文就来告诉大家,软件工程师是如何做到能在各个地方随时工作的——下文将为小伙伴揭秘,大家可以学起来哦。作者|Tigran Bayburtsyan译者 |苏本如 ,责编 | maozz出品 | CSDN(ID:CSDNnews)以下为译文:编程不是一...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 3,798
精华内容 1,519
关键字:

如何做到服务