This could be a long discussion. I am listing down some of the things we
follow:
1) We use gRPC only for internal API calls. Anything that is exposed to the
outside world is done via a REST wrapper.
2) Use Consul for service discovery and use channel pooling for load
balancing.
3) If you are using Newrelic, you can put the @Trace annotation on top of
each service method so that it gets captured.

For all practical purposes, our gRPC services run okay on 4 core 8GB
machines. Be extra careful around error handling though, and also take care
when configuring channel pool sizes.

Let me know if you want to discuss things in further details.

-- Thanks and Regards
   Mahesh Lal


On 1 July 2017 at 00:44, Selcuk Bozdag <[email protected]> wrote:

> Hi,
>
> We just started experimenting with gRPC services. As Manesh, we also
> created a number of services(in form of executable jar files) which they
> serve individually.
> We are coming from a world of monoliths where each stack is something
> deployable on an app server and now looking for the best practices around
> to figure out how to run our services.
>
> Any ideas or recommendations?
>
> Thanks
>
>
> On Friday, 10 June 2016 20:23:40 UTC+2, Alex Borysov wrote:
>>
>> Hi Manesh,
>>
>> For New Relic, you might need to use experimental java agent to use Netty
>> 4: NewRelic netty-4.0
>> <https://docs.newrelic.com/docs/agents/java-agent/instrumentation/java-agent-incubator#h3_11>
>>
>> Thanks,
>> Alex Borysov
>>
>> On Friday, June 10, 2016 at 10:10:18 AM UTC-7, Mahesh Lal wrote:
>>>
>>> Thanks for the reply Eric.
>>> I got my New Relic question answered by a bit of experimentation.
>>> I can definitely use New Relic to monitor the gRPC service simply by
>>> setting the *-javaagent:/fully/qualified/path/to/newRelic.jar *even if
>>> I am running it using the JVM directly.
>>>
>>> -- Thanks and Regards
>>>    Mahesh Lal
>>>
>>>
>>> On 10 June 2016 at 22:31, Eric Anderson <[email protected]> wrote:
>>>
>>>> I can't answer at all about New Relic.
>>>>
>>>> On Fri, Jun 10, 2016 at 4:13 AM, Mahesh Lal <[email protected]> wrote:
>>>>
>>>>> We are using GRPC for our internal services. Currently, we package the
>>>>> service as a Jar and running it directly using the JVM (*java -jar
>>>>> <jar name>*). We aren't using any application server like Jetty or
>>>>> Netty. In a production environment, is that okay?
>>>>>
>>>>
>>>> Yep, that sounds fine.
>>>>
>>>> Do we need to deploy Grpc services to an App server at all?
>>>>>
>>>>
>>>> No, it's not necessary. gRPC doesn't really care. If you're already
>>>> using an App server, that's fine. If you just run binaries directly, that's
>>>> fine.
>>>>
>>>
>>>

-- 
You received this message because you are subscribed to the Google Groups 
"grpc.io" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/grpc-io.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/grpc-io/CALftiMrJ-E_e1UHg%3Dhsqu%2B3WrB6q53rDukhfkzKOJA6fV4dpTw%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to